package com.haowu.product.domain.bo;

import com.haowu.common.core.validate.AddGroup;
import com.haowu.common.core.validate.EditGroup;
import com.haowu.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.math.BigDecimal;

/**
 * 服务项目sku业务对象
 *
 * @author lky
 * @date 2023-02-24
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class HwServiceSkuBo extends BaseEntity {

    /**
     * 主键id
     */
    @NotNull(message = "主键id不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 服务id
     */
    @NotNull(message = "服务id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long serviceId;

    /**
     * 服务sku编号
     */
    @NotBlank(message = "服务sku编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String serviceSkuCode;

    /**
     * 服务sku名称
     */
    @NotBlank(message = "服务sku名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String serviceSkuName;

    /**
     * 服务次数
     */
    @NotNull(message = "服务次数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long serviceNumber;

    /**
     * 原价
     */
    @NotNull(message = "原价不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal originalCostAmount;

    /**
     * 现价
     */
    @NotNull(message = "现价不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal currentPriceAmount;

    /**
     * 分销金额
     */
    @NotNull(message = "分销金额不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal distributionAmount;

    /**
     * 封面图
     */
    @NotBlank(message = "封面图不能为空", groups = { AddGroup.class, EditGroup.class })
    private String coverPicture;

    /**
     * 状态 0上架 1下架
     */
    @NotBlank(message = "状态 0上架 1下架不能为空", groups = { AddGroup.class, EditGroup.class })
    private String serviceStatus;

    /**
     * 是否体验包 0否 1是
     */
    @NotNull(message = "是否体验包 0否 1是不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer isExperience;

    /**
     * 是否删除 0否1是
     */
    @NotNull(message = "是否删除 0否1是不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer isDelete;

    /**
     * 排序
     */
    @NotNull(message = "排序不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer sort;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;


}
